<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        /* 
            利用构造函数创建对象
            手机   name price playGame
            构造函数的语法结构
            function 构造函数名(形参){
                this.属性名 = 值(形参);
                this.方法名 = function(形参){
                    逻辑代码
                }
            }
            构造函数的调用
            new 构造函数名(实参);
        */
        function Phone(name, price) {
            this.name = name;
            this.price = price;
            this.playGame = function (brand) {
                console.log('我在用' + brand + '打游戏');
            }
             // 构造函数返回了一个对象，但是没有return 关键字
        }
        var huawei = new Phone('华为', 2000);
        var apple = new Phone('苹果', 1500);
        var ml = new Phone('小米', 1800);

        console.log(huawei.name);
        console.log(huawei['price']);
        huawei.playGame('华为手机');
        console.log('----------------');
        console.log(apple.name);
        console.log(apple['price']);
        apple.playGame('苹果手机');
        /*
            1. 构造函数名字的首字母必须大写
            2. 我们构造函数返回了一个对象，但是没有 return 关键字
            3. 构造函数调用，必须使用 new
            4. 我们的属性和方法赋值必须使用 this 关键字
              this 指的是当前返回的对象
        */
    </script>
</body>

</html>